perm filename OLIVER.2[LET,JMC] blob sn#838363 filedate 1987-04-10 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	\input buslet[1,ra]
C00008 ENDMK
CāŠ—;
\input buslet[1,ra]
\jmclet
\vskip 30pt
\address 
Dr. Bernard Oliver
Hewlett-Packard Company
1501 Page Mill Road
Palo Alto, California  94304

\body
Dear Barney:

	Here are the comments I promised you on the HP-28C.

	In my opinion the HP-28C represents a large advance on previous
calculators in several respects.  Its editing facilities are excellent
and, most important, memorable, i.e. I don't have to reread the manual
about how to edit if I haven't used the calculator for several weeks.
The calculator makes excellent use of its limited display, the menu
system is understandable and memorable, especially the USER menu, and
the use of variables to represent everything in memory is an excellent
idea --- in correspondence with the more advanced ideas about programming
languages.

	On the other hand, all these new features do not guarantee that
the calculator will be a success.  Its algebraic computation features
are a good first try, but unfortunately the calculator runs out of
memory on the simplest non-trivial computations, e.g. computing the
Taylor series for $tan x$ up to the $x↑5$ term.  The equivalence
preserving transformations of subexpressions of algebraic expressions are
a good idea, but it would be nice if they were easier to use.

	Here are some suggestions for improving the calculator.

	1. It needs much more memory.  No doubt its designers thought
quite a bit about how much memory they could put in, but perhaps they
missed the following possibility.  Since the main memory problem is
that the calculator runs out of working memory during calculations,
it would be useful to add a dynamic RAM even at the price of losing
this part of the memory when the calculator was turned off.  A single
megabit RAM would add 128K bytes, and I think this would suffice to
make the Taylor series computation much more than a toy.  Naturally
more continuous memory would also be very desirable.

	2. It should be mentioned in the manual that LISP style
recursive definitions work.  This is often a very convenient way
of programming stack based machines like the HP-28C.

	3. The FORM features should be handled more generally.
These transform subexpressions of algebraic expressions.  The
particular transformations, e.g. $x+y → y+x$, should be values
of variables, and the user should be able to create new ones.
It might be good if they were automatically added to the FORM
menu, but the USER menu would probably be good enough.

	4. It would be good to have a variable whose value is
a list or vector of all the variables.  This would facilitate the user
using programs to edit his variables.

	5. It would be nice if the printer also turned itself
off automatically after a while.  It makes an attractive noise, and
my 16 month old son has learned how to turn it on.

	I would find it interesting to talk to someone who knows
how the calculator works about how it might be improved.  I think
it would also be interesting if such a person would give a Stanford
computer science colloquium lecture about it.

\closing
Sincerely,       

John McCarthy    
\annotations
\vskip 1in
%Enclosure
%\vskip 1in
JMC/ra 
\endletter
\end